Modern data processing systems, such as general purpose computer systems, allow the users of such systems to create a variety of different types of data files. For example, a typical user of a data processing system can create text files with a word processing program or can create an image file with an image processing program. Numerous other types of files are capable of being created or modified, edited, and otherwise used by one or more users for a typical data processing system. The large number of the different types of files that can be created or modified can present a challenge to a typical user who is seeking to find a particular file which has been created.
Modern data processing systems often include a file management system which allows a user to place files in various directories or subdirectories (e.g. folders) and allows a user to give the file a name. Further, these file management systems often allow a user to find a file by searching not only the content of a file, but also by searching for the file's name, or the date of creation, or the date of modification, or the type of file. Typically, file management systems include a searching function which allows a user to search for flies by various criteria, such as a term in a file, and also allow the user to limit the search to a particular directory.
Searching through hundreds, if not thousands, of files for a particular term is resource intensive, so most file management systems index at least some of the terms in files for faster searching. However, determining whether a file containing a particular term is in a specified directory requires calls to the underlying operating system, which slows the search.